#pragma once

#include "rewine.h"

#include "rewine/impl/CPeImage.hpp"

namespace rewine
{

class ElfInterop {
private:
    CPeImage *pImage;
    const char *caller;
    rw_elf_t elf;

public:
    ElfInterop(CPeImage *pImage) : pImage(pImage) {}

private:
    void * rva2va(uintptr_t offset) const;

public:
    rw_elf_t buildELFInfo(const char *caller);
    void updateSymtab(uint32_t symsz, void *symtab0, void *strtab0);

};

} // namespace rewine
